Micron Document
RO_RetNet Git

Node / public / retnet-tools rns://f4139b011d2b991d10bb0f7a07566178/public/retnet-tools


>RetNet-Tools

! Still in development, not realese ready yet. !

Reticulum Network Deploy and Administration Tools

This project aims to ease the deplyment and management of Reticulum nodes, to allow easy usage for large networks or for beginners trying to dip their toes in the ocean of Reticulum.

Philosophy of Retnet is to altruistically help. Every intention must be rooted in helping others without expecting something in return.
Therefore, this should help people install, use and maintain Reticulum mesh.

This project assumes basic linux/shell/programming knowledge, but also aims to be compatible with people that are less computer oriented.

Initial idea was to have this used for a node deployment on Raspberry Pi Zero using DietPi.
Therefore main development is aimed at Debian linux platform and it is partially dependent on Debian, however most of this project can be used on other linux distros as well.

It is desiged to be used for a transport node, at least to bridge the local network to the wide Reticulum mesh.
Not every node must be a transport node, but as this is aimed to be a gateway, it'll be configured as such.

! WiFi/Eth/SSH Configuration/Hardening are recommended but out of the scope of this project. !

Features

• Install Script - retnet-install.sh
This script is a complete install for Reticulum stack as well as configuring Retnet functionalities.
It is basically a shell script that will do anything needed to try to achieve almost a plug-and-play solution for creating a node.

It will install dependencies, create additional helper scripts from scratch, configure things etc.
Designed to be kind of self-sovereign, as in use internet as less as possible and create anything from scratch.

The installation is configurable via script modification or via script arguments. See the script for more details.

It is dependent on RNS, LXMF and Sideband to achieve full potential.
Nomadnet, while as a useful tool and a common one, will not be installed by this project, due to the fact that not every router will serve nomadpages, and surfing nomadnet is usually done on a personal device rather than on a router device. However, RetNet does offer support to update nomadnet if it's installed.

For more info read the script and use:
T282828
./retnet-install.sh --help

! Advanced tip: You can modify the script and add custom interfaces. !

• Node Administration - retnet.py
Basic node administration is available via custom Sideband command plugin.
The node will use Sideband to listen from commands from allowed identities only.

Using the commands it is possible to:
• retnet help : Get help regarding retnet plugin commands.
• retnet ping : Ping the node, will respond with a Pong!
• retnet version : Get current versions of Reticulum, Sideband and Nomadnet(if installed) from the node.
• retnet update : Update Reticulum, Sideband and Nomadnet(if installed) via pip.
• retnet rns-update : Update Reticulum, Sideband and Nomadnet(if installed) via Reticulum itself.
• retnet restart : Reboot node.
The plugin can take more than one command at a time, and will execute them in the written order.(i.e., retnet version update version)

Admin identities can be added such that the plugin will only respond from commands coming from these lxmf addresses. This ensures that only select people can manage the node via Retnet.

! If plugin doesn't work, it may be that the node doesn't know the admin. Try to announce from your sideband admin device such that the node will hear it. !

RNSH can be configured and allowed identities added at installation. This can allow granular and complex management of the node.

• Hotspot Fallback - Optional Configuration
If configured, it'll download AccessPopup locally.
Requires manual configuration of AccessPopup after installation, but if done so, if WiFi is not available then the node can create a WiFi hotspot that can be used for management or for Reticulum connection(i.e. local network or LoRa).

Use -ap when installing via retnet-install.sh

• Helper Scripts - /scripts
Some helper scripts that can be used separately if ones desire, but the Sideband plugin will need them.

Install

Reticulum in no time
If privacy is not a concern, run the script with -d argument.
This will configure Reticulum to automatically connect to a public network and discover few interfaces, then connect to those.
This achieves mesh connection in fewest steps possible but with less features such as remote administration.
Best beginner friendly: just install and start using Reticulum.

T282828
T8b949e# Make script executable
chmod +x ./retnet-install.sh

T8b949e# Execute the script with discovery enabled
./retnet-install.sh -d


Easiest installation
Basically just download the retnet-install.sh script and run it as it is.
It'll not connect to the wide and public Reticulum mesh, will only connect to local network, still needs interfaces configuration for external connection.

T282828
T8b949e# Make script executable
chmod +x ./retnet-install.sh

T8b949e# Execute the script
./retnet-install.sh


Plugin only
You can just install the plugin for Sideband, given so that you already have RNS and Sideband installed.
In this case, just copy the retnet.py file to your Sideband plugins folder, then download the helper scripts to ~/.retnet/scripts. At the end create the sideband admin identity txt file at ~/.retnet/allowed_identities and put your sideband lxmf address in there.

Full Deploy
This will describe a full configuration of a node to be deployed at a remote location.
It'll configure everything and may need at least basic understanding of Reticulum and/or general computer knowledge, as well as reading all this readme and don't skip too much.

Let's say you want to deploy a node at your second house where you don't go that often.
The node will have WiFi and LoRa capabilities, maybe also Ethernet cable who knows. The idea is that we have at least a LoRa backup in case the internet goes down, or there is a power cut, or you didn't pay the bills.

If internet goes down you may want to make a hotspot so that someone who's nearby the node can still use the Reticulum via WiFi but bridged to LoRa.

You also want to be able to update and/or manage the node remotely, therefore we need to configure Sideband admin and RNSH.

In this example privacy is not a concern, it's ok to be connected to the internet.

As hardware, choose a Raspberry Pi, Zero 2W should be enough, but 3 or 4 are also good.
Other devices similar to Raspberry can work, even an old laptop with Debian can work.

Download the install script and use the following:
• -a to add the Sideband Admin address. Provide your main Sideband lxmf address such that the node can authenticate your commands. Let's say your Sideband lxmf address is 00110011001100110011001100110011.
• -d to allow discovery of new interfaces and autoconnect. This ensures decentralization of mesh and redundant connections for availability.
• -l to add the LoRa RNode. Provide the port to which RNode is connected. Let's say your port is /dev/ttyACM0.
• -lf to specify the LoRa frequency. Allowed frequencies differ from continent to continent, even country to country. It is your responsibility to ensure you use the right frequency and comply to the law. Also ensure that you match what your device can use. Let's say you'll use Europe frequencies, thus 869556250 is a good candidate.
• -ap to install AccessPopup. Then you can configure it and have a fallback WiFi hotspot if normal WiFi is not accessible.
• -r to enable RNSH. Add each allowed rnsh identities after this option, you can add multiple identities here.
Let's say you have 2 devices that you'll use via RNSH: 00112233445566778899aabbccddeeff and 0102030405060708090a0b0c0d0e0f.

So now that we have the overview, let's install the device.
Download the script and execute the following:

T282828
chmod +x ./retnet-install.sh
./retnet-install.sh -a T79c0ff00110011001100110011001100110011 -d -l /dev/ttyACM0 -lf T79c0ff869556250 -ap -r 00112233445566778899aabbccddeeff 0102030405060708090a0b0c0d0e0f
sudo reboot


! Keep an eye on the install log for RNSH server address and Sideband address, you'll need it later to connect to it. Maybe don't reboot until you save it. !

Afterwards go to ~/git/AccessPopup and configure it according to its repository.
You'll likely need to reconfigure WiFi for AccessPopup at the deply location.

And that's it, plug the device into power socket or solar and you should be able to access it via Sideband command or via RNSH.

You can also just use the Sideband on the device and access Reticulum directly from the node itself.

! Advanced tip: You can add more admin lxmf addresses at ~/.retnet/allowed_identities, make sure to add only one identity per line. !

Dependencies

Here's a description of the dependencies and their reasoning:
• sudo -> Need to update, install dependencies, create/enable services.
• python3, python3-dev and python3-pip -> Needed to run and install Reticulum.
• libopusfile0 -> Sideband dependency as stated in git repository.
• xclip -> Sideband dependency as stated in git repository.
• xsel -> Sideband dependency as stated in git repository.
• python3-pyaudio -> Sideband dependency as stated in git repository.
• codec2 -> Sideband dependency as stated in git repository.
• g++-aarch64-linux-gnu -> Needed to compile Sideband dependecies via pip on Raspberry(i.e., DietPi).
• binutils -> Needed to compile Sideband dependecies via pip on Raspberry(i.e., DietPi).
• git (optional) -> Needed to clone AccessPopup.
• network-manager (optional) -> Needed to run AccessPopup.
• rns -> Installed via pip. This is the Reticulum service.
• sbapp -> Installed via pip. This is the Sideband application. Will be used for node administration via custom python plugin. Can be used for messages and voice calls over Reticulum.
• AccessPopup (optional) -> Needed to create a hotspot in case the main WiFi connection is lost. Useful to be able to connect to the device when other protocols fail.

Links
• Reticulum
• Sideband
• Nomadnet
• RNode

Support

All support should go to Mark.
He's the only developer of all these Software and it's a full time job.

Copy paste of Mark's donation channels:
• Monero:
T282828
84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w
• Bitcoin
T282828
bc1pgqgu8h8xvj4jtafslq396v7ju7hkgymyrzyqft4llfslz5vp99psqfk3a6
• Ethereum
T282828
0x91C421DdfB8a30a49A71d63447ddb54cEBe3465E
• Liberapay: https://liberapay.com/Reticulum/
• Ko-Fi: https://ko-fi.com/markqvist



Served by rngit 1.5.4 - Generated in 0.32s